/*
 * ManejadorLogs.h
 *
 *  Created on: 12/11/2011
 *      Author: pablo
 */

#ifndef MANEJADORLOGS_H_
#define MANEJADORLOGS_H_

#include "Log.h"
#include "../../common/configuraciones/ConfiguracionLogs.h"

/**
 * Clase encargada de manejar los logs.
 * Los logs son unicos dentro de la aplicacion. Es por eso que se utiliza
 * el patron singleton. De esa manera las instacias son unicas.
 */
class ManejadorLogs {
   public:
	/**
	 * Devuelve la instancia del manejador.
	 */
      static ManejadorLogs* getInstance(const ConfiguracionLogs& conf);

      /**
       * Devuelve el log de acceso asociado al manejador
       */
      Log* getLogAcceso();

      /**
       * Devuelve el log de errores asociado al manejador
       */
      Log* getLogError();
   protected:
      ManejadorLogs(const std::string& logErr , const std::string& logAcc);
      ManejadorLogs(const ManejadorLogs & ) ;
      ManejadorLogs &operator= (const ManejadorLogs & ) ;
      ~ManejadorLogs();
   private:
      static ManejadorLogs* pinstance;
      Log* logError;
      Log* logAcceso;
};

#endif /* MANEJADORLOGS_H_ */
